package cl.easyRestaurant.controllers.ventas;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.model.DataModel;

import cl.easyRestaurant.business.ventas.IFPagoBusiness;
import cl.easyRestaurant.models.ventas.FPagoModel;
import cl.easyRestaurant.business.ventas.IVentasBusiness;
import cl.easyRestaurant.dataAccess.persistence.FormaPago;
import cl.easyRestaurant.models.ventas.VentasModel;

public class PagarCuentaController {

	@EJB
	private IFPagoBusiness formaPagoBusiness;
	
	@EJB
	private IVentasBusiness ventasBusiness;
	
	private FPagoModel formaPagoModel;
	
	private VentasModel ventasModel;
	
	//private DataModel<FPagoModel> formasPago;
	
	private int valorCuenta;
	
	private Date fechaVenta;
	
	private String idFPago;
	
	private FormaPago fPago;
	
	private String fechaHoy;
	
	@PostConstruct
	public void init(){
		try{
			this.setFPagoModel(this.formaPagoModel);
			//this.setFormasPago(this.formaPagoBusiness.GetFPagoModel());
			this.setValorCuenta(10000);
		}catch(Exception e){
			this.setFPagoModel(new FPagoModel());
		}
	}
	
	public String pagarCuentaAction(){
		try{
			this.setfPago(this.formaPagoBusiness.GetFPagoModel(idFPago));
			SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy");
			Calendar calendario = GregorianCalendar.getInstance();
			Date fecha = calendario.getTime();
			String fechaFormat = formatoFecha.format(fecha);
			this.fechaVenta = formatoFecha.parse(fechaFormat);
			this.ventasBusiness.PagarCuenta(this.getfPago(), valorCuenta, fechaVenta);
			return "pagarCuentaAceptada.jsp";
		}catch(Exception e){
			return "pagarCuentaRechazada.jsp";
		}
	}
	
	/*public void verFormasPagoAction(){
		try{
			this.setFPagoModel(this.formasPago.getRowData());
		}catch (Exception e) {
			// TODO: handle exception
			this.setFPagoModel(new FPagoModel());
		}
	}
	
	public DataModel<FPagoModel> getFormasPago(){
		
		return this.formasPago;
	}
	
	public void setFormasPago(DataModel<FPagoModel> formasPago) {
	
		this.formasPago = formasPago;
	
	}*/
	
	public void setFPagoModel(FPagoModel formaPagoModel) {
		
		this.formaPagoModel = formaPagoModel;
		
	}

	public int getValorCuenta() {
		return valorCuenta;
	}

	public void setValorCuenta(int valorCuenta) {
		this.valorCuenta = valorCuenta;
	}

	public IVentasBusiness getVentasBusiness() {
		return ventasBusiness;
	}

	public void setVentasBusiness(IVentasBusiness ventasBusiness) {
		this.ventasBusiness = ventasBusiness;
	}

	public VentasModel getVentasModel() {
		return ventasModel;
	}

	public void setVentasModel(VentasModel ventasModel) {
		this.ventasModel = ventasModel;
	}

	public IFPagoBusiness getFormaPagoBusiness() {
		return formaPagoBusiness;
	}

	public void setFormaPagoBusiness(IFPagoBusiness formaPagoBusiness) {
		this.formaPagoBusiness = formaPagoBusiness;
	}

	public FPagoModel getFormaPagoModel() {
		return formaPagoModel;
	}

	public void setFormaPagoModel(FPagoModel formaPagoModel) {
		this.formaPagoModel = formaPagoModel;
	}

	public String getIdFPago() {
		return idFPago;
	}

	public void setIdFPago(String idFPago) {
		this.idFPago = idFPago;
	}

	public Date getFechaVenta() {
		return fechaVenta;
	}

	public void setFechaVenta(Date fechaVenta) {
		this.fechaVenta = fechaVenta;
	}

	public FormaPago getfPago() {
		return fPago;
	}

	public void setfPago(FormaPago fPago) {
		this.fPago = fPago;
	}
	
}
